// 云函数入口文件
const cloud = require('wx-server-sdk')

cloud.init({
  env: cloud.DYNAMIC_CURRENT_ENV
})

// 云函数入口函数
exports.main = async (event, context) => {
  const { code, encryptedData, iv } = event

  try {
    // 调用微信接口获取 session_key 和 openid
    const res = await cloud.openapi.wxa.code2Session({
      js_code: code,
    })

    const { openid, session_key } = res.result

    // 解密手机号
    const phoneRes = await cloud.openapi.wxa.getPhoneNumber({
      code: event.code,
      encryptedData: encryptedData,
      iv: iv,
      sessionKey: session_key,
    })

    const phoneNumber = phoneRes.result.phoneNumber

    // 这里可以添加存储用户信息的逻辑，例如存储到数据库
    // const db = cloud.database()
    // await db.collection('users').add({
    //   data: {
    //     openid: openid,
    //     phoneNumber: phoneNumber,
    //     // 其他用户信息
    //   }
    // })

    return {
      openid: openid,
      phoneNumber: phoneNumber,
      // 其他返回信息
    }
  } catch (err) {
    console.error('获取手机号失败:', err)
    throw err
  }
}